This relates to a method and apparatus for implementing a token ring communication system on a token bus communication system. Advantageously, the token bus communication system conforms to ANSI/IEEE Standard 802.4 for Token-Passing Bus Access Method and Physical Layout Specifications and the token ring communication system conforms to ANSI/IEEE Standard 802.5 for Token Ring Access Method and Physical Layout Specifications.
These standards are incorporated herein by reference.
A token ring communications network consists of serially interconnected elements or nodes that form a physical ring structure. Each node transfers information sequentially from one active element to the next. Each node may have other devices attached such as computer terminals, printers, disk drives and the like which will be referred to as station equipment; and the node provides the mechanism for each of these devices to communicate with a corresponding device over the ring.
Access to the ring for purposes of communication is controlled by a token which circulates through the ring at all times. The token is either free, if the ring may be used for communication, or busy, if a message is being sent from a sending mode to a destination node. The token and any information that accompanies it pass from one node to the next in the ring structure. Each node that receives the token and accompanying information examines the entire message and token as received and regenerates and retransmits them to the next node.
When a node wants to transmit, it waits for a free token. Upon receiving a free token, it transmits to the next node a frame comprising message information, source and destination node address, various control information and the token which is now identified as busy. As the frame passes around the ring, each node notes that the token is busy, examines the destination address to see if the message is intended for it, checks the source address to determine if it originated the message and regenerates and retransmits the message and token.
When the frame reaches the destination node, that node recognizes that the message is addressed to it, copies the message, sets a bit in the frame that indicates that it copied the message and passes the message to the next node.
When the frame reaches the source or originating node, that node recognizes the source address, resets the token to free, removes the data and forwards the token to the next node. It also checks the copy bit to see if the data was copied and compares the data and address received with those transmitted to detect possible errors in transmission.
To prevent a faulty node from disabling the system, one node is designated the active monitor. If the monitor does not see a free token pass within a specified time limit, it purges any circulating message and generates a free token. Likewise if the monitor sees the same message pass more than once, it purges the message and generates a free token. To protect against failure of the active monitor, each node also has a timeout feature that is reset by free tokens. If the node times out before a free token is received, another node is designated the active monitor.
A token bus communications network comprises two or more nodes that are physically connected together by a communications bus. The token bus is similar to the token ring inasmuch as a token is utilized to grant access to a node to trnnsmit information. The major difference is that while the token ring is a physical ring, the token bus is a logical ring. Logic programmed into each node tells it to pass the token only to a specifically addressed node. By this means all of the nodes are linked together in a logical ring. A node gains access to the bus when the token is sent to it. Upon receiving the token, each node in turn transmits information over this bus, addressed to any node connected to the bus. All stations hear all of the information being sent with only the addressed station taking action. After a node has sent all of its information or the token timer is exceeded, the token is passed to the next node in the logically defined ring.